import java.util.ArrayList;
import java.util.HashSet;

//求两个数组的交集
public class question1 {
    public static ArrayList<Integer> intersection (ArrayList<Integer> nums1, ArrayList<Integer> nums2) {
        // write code here

        //如果要排序，可以这样排
        /*Collections.sort(nums1);
        Collections.sort(nums2);*/

        ArrayList<Integer> ret = new ArrayList();

        HashSet<Integer> set1 = new HashSet();
        HashSet<Integer> set2 = new HashSet();
        for(int n : nums1) {
            set1.add(n);
        }
        for(int n : nums2) {
            set2.add(n);
        }
        for(int n : set1) {
            if(set2.contains(n)) {
                ret.add(n);
            }
        }
        return ret;
    }

    public static void main(String[] args) {
        ArrayList<Integer> nums1 = new ArrayList<>();
        ArrayList<Integer> nums2 = new ArrayList<>();
        nums1.add(1);
        nums1.add(2);
        nums1.add(3);

        nums2.add(8);
        nums2.add(2);
        nums2.add(2);
        nums2.add(3);
        nums2.add(5);
        ArrayList ret = intersection(nums1,nums2);
        System.out.println(ret);
    }
}
